home *** CD-ROM | disk | FTP | other *** search
/ ThrustMaster (Europe) (Press Kit) / ThrustMaster (Europe) (Press Kit).bin / progs / f22ccc / MAIN.EXE / program.hlp < prev    next >
Encoding:
Text File  |  1996-09-16  |  76.4 KB  |  1,957 lines

  1. .TOPIC:
  2. Contents
  3.  
  4. Contents
  5.                       ThrustMaster Enhanced Editor
  6.                     Copyright 1996, ThrustMaster Inc.
  7.  
  8.     Click on a topic:
  9.  
  10. Using Help
  11. Introduction
  12. Editor Commands
  13. Contacting ThrustMaster
  14.  
  15. Keyboard Input  Keyboard Operation
  16.  
  17. Frequently Used Programming Commands:
  18.  
  19.     BTN                             Button Commands
  20.     PORTBx Command                  Analog Joystick Buttons
  21.     Button Press & Release          /P /R Commands
  22.     FLCS BTN S3 In/Out Command      /I /O Commands
  23.     Rocker Switch Settings          /U /M /D Commands
  24.     /A                               Force Analog  
  25.     /T                               Toggle
  26.     /N                               Force Single Character
  27.     /H                               Hold
  28.     TG1/TG2                          F-22 Trigger
  29.     Combinational Keypresses        
  30.     Basic Rules For Using Slash Codes
  31.  
  32.  
  33. MDEF   Macro Definition Files       @      Special Macro Definitions 
  34. ANT    Antenna Knob (TQS)           RNG    Range Knob (TQS)   
  35. THR    Throttle Settings            MT     Minimum Throttle Setting    
  36. RDDR   Digital Rudder               RATE   Keypress Rate Setting 
  37. RAW    Keyboard Scan Codes          REM    Remark Line
  38. SWAPTG F-22 Swap Trigger (TG1/TG2) 
  39.  
  40. USE    Configuration Statement
  41.  
  42.          TQS  WCS  MTYPE  FCLK  NOTHR  NOMOUSE  XIO
  43.  
  44.  
  45. JSX  JSY  Digital Joystick Commands
  46.  
  47. .TOPIC:
  48. USING HELP
  49.  
  50. Selecting a Help link:
  51. ----------------------
  52. With a mouse - click on phrases outlined by two triangles.  With the 
  53. keyboard - Press TAB or Shift-TAB to select a link.  Press ENTER to jump 
  54. to that topic.
  55.  
  56. Scrolling the Help window:
  57. --------------------------
  58. With a mouse - click on the horizontal or vertical scroll bars.
  59.  
  60. With the keyboard - press the cursor navigation keys.
  61.  
  62. Closing the Help window:
  63. ------------------------
  64. With a mouse - double click on the window's control box icon in the upper
  65. left corner of the window.  With the keyboard - press Ctrl-F4.
  66.  
  67. Command Buttons:
  68. ----------------
  69. Applications may use one or more of the following command buttons.  Use a 
  70. mouse to click a button or press the letter mentioned below.
  71.  
  72. Contents - displays a table of contents for the application's Help.  Press 
  73. C to select Contents.
  74.  
  75. Search -  opens a dialog box that lists all available Help topics.  Select 
  76. a topic from the list box and press ENTER.  Press S to select Search.
  77.  
  78. Back - jumps to the last Help topic viewed.  Press B to select Back.
  79.  
  80. History - lists the last 20 Help topics viewed.  Jump to a topic by 
  81. selecting from the list box and pressing ENTER.  Press T to select 
  82. History.
  83.  
  84. Copy - copy the current topic or a portion of the current topic to the 
  85. clipboard.  You can then exit help and paste the contents of the clipboard 
  86. into your program file.
  87.  
  88. Print - print the current topic or a portion thereof to your printer or a 
  89. file.
  90.  
  91. .TOPIC:
  92. Editor Commands
  93. Editor Commands:
  94.  
  95. The following keys are used in the enhanced editor to help you during 
  96. the preparation of a new program file or to modify an existing file:
  97.  
  98. ESC -  Exit and return to the main menu
  99. BSP -  Erase character directly to left of cursor
  100. F10 -  Modify editor screen colors
  101. Ctrl-LeftArrow -  Move to the first character of the word to the left
  102.                   of the cursor
  103. Ctrl-RightArrow - Move to the first character of the word to the right
  104.                   of the cursor
  105. Ctrl-Y - Delete the entire line
  106. Ctrl-HOME - Move to the first character at the top of the file
  107. Ctrl-END - Move to the last character at the end of the file
  108. PGUP - Move up one page
  109. PGDN - Move down one page
  110. INS - Toggle between insert and overwrite modes
  111. DEL - Delete the character at the cursor
  112. Shift-END - Highlight the current line from the cursor position
  113.             to the rightmost character
  114. Shift-UpArrow - Highlight from the current line upward
  115. Shift-DownArrow - Highlight from the current line downward
  116. Ctl-X - Cut (delete) the highlighted portion of text to memory
  117. Ctl-C - Copy the highlighted portion of text to memory
  118. Ctl-V - Paste the most recently deleted or copied portion of text from 
  119.         memory to the current document
  120.  
  121. .TOPIC:
  122. PORTBx Command
  123. PORTBx Command:
  124.  
  125. Joystick button inputs - default setup:
  126.  
  127. Joystick buttons 1 - 4 can be mapped to any button or hat switch on the
  128. F-22 using the PORTBx IS Button_Label command (see the table below).
  129.  
  130. While in the F-22 Editor, type in the joystick port label corresponding to
  131. the joystick button you wish to assign followed by the name of the F-22
  132. button label.
  133.  
  134. Command Format:
  135.  
  136.                       Port_Label IS F22_Button_Label
  137.  
  138.     Where:
  139.  
  140.     Port_Label       Button Seen By Game       Typical F22_Button_Label
  141.  
  142.       PORTB1          joystick button 1                 TG1
  143.       PORTB2          joystick button 2                  S2
  144.       PORTB3          joystick button 3                  S3
  145.       PORTB4          joystick button 4                  S4
  146.  
  147. Example:
  148.  
  149. PORTB1 IS TG1
  150.  
  151. .TOPIC:
  152. TQS
  153. Command: USE TQS
  154.  
  155. Device: TQS Throttle Quadrant System
  156.  
  157. Purpose: Defines the throttle device in your program file as the F16 TQS.
  158.  
  159. The "USE TQS" statement serves the same basic function as the USE WCS 
  160. statement, i.e., it defines the type of throttle device you are using.  
  161. The "USE TQS" statement should be entered on its own line near the top of 
  162. your program file.  Do not put "USE TQS" and "USE WCS" in the same program 
  163. file.
  164.  
  165. .TOPIC:
  166. WCS
  167. Command: USE WCS
  168.  
  169. Device: WCS Mark II Weapons Control System Throttle Device
  170.  
  171. Purpose: Defines the throttle device in your program file as the WCS Mark 
  172. II.
  173.  
  174. The "USE WCS" statement serves the same basic function as the USE TQS 
  175. statement, i.e., it defines the type of throttle device you are using.  
  176. The "USE WCS" statement should be entered on its own line near the top of 
  177. your program file.  Do not put "USE WCS" and "USE TQS" in the same program 
  178. file.
  179.  
  180. .TOPIC:
  181. XIO
  182. Command: USE XIO
  183.  
  184. Device: F-22 With Mini-Cockpit
  185.  
  186. The "USE XIO" statement should be entered on its own line near the 
  187. top of your program (F22) file.  This program command is used to tell your 
  188. program file to accept commands for the mini-cockpit device.
  189.  
  190. .TOPIC:
  191. MTYPE
  192. Command: USE MTYPE Type
  193.  
  194. Where: Type = one of the available codes for two-button and three-button 
  195.        mice.
  196.  
  197. Device: Used with the F-16 TQS (Throttle Quadrant System).
  198.  
  199. The "USE MTYPE Type" statement should be entered on its own line near the 
  200. top of your program (F22) file.  Available designations for the "Type" 
  201. statement are:
  202.  
  203.                   Standard Mouse Button
  204.           Type    Left    Middle  Right
  205.           ------------------------------
  206.           2-Button Microsoft Type Mouse
  207.           ------------------------------
  208.           A1      T1      n/a     T6
  209.           A2      T6      n/a     T1
  210.           A3      T1      n/a     n/a
  211.           A4      T6      n/a     n/a
  212.           A5      n/a     n/a     n/a
  213.           ------------------------------
  214.           3-Button (Mouse Systems) Mouse
  215.           ------------------------------
  216.           B1      T1      T6      n/a
  217.           B2      T6      T1      n/a
  218.           B3      T1      n/a     n/a
  219.           B4      T6      n/a     n/a
  220.           B5      n/a     n/a     n/a
  221.           B6      T1      T6      T3
  222.           B7      T6      T1      T3
  223.           B8      T1      n/a     T3
  224.           B9      T6      n/a     T3
  225.           B10     n/a     n/a     T3
  226.           -----------------------------
  227.           3-Button Logitech Type Mouse
  228.           -----------------------------
  229.           C1      T1      T6      n/a
  230.           C2      T6      T1      n/a
  231.           C3      T1      n/a     n/a
  232.           C4      T6      n/a     n/a
  233.           C5      n/a     n/a     n/a
  234.           C6      T1      T6      T3
  235.           C7      T6      T1      T3
  236.           C8      T1      n/a     T3
  237.           C9      T6      n/a     T3
  238.           C10     n/a     n/a     T3
  239.           -----------------------------
  240.                   Disable Mouse
  241.           -----------------------------
  242.           NONE    n/a     n/a     n/a
  243.           -----------------------------
  244.  
  245. For example, to create a Microsoft-type mouse that assigns the left 
  246. mouse-button to button T1 on the TQS and the right mouse-button to button 
  247. T6 on the TQS, type in the following line in your program (F22) file:
  248.  
  249.                             USE MTYPE A1
  250.  
  251. .TOPIC:
  252. @
  253. Command: @MacroName
  254.  
  255. Purpose: Special Macro Definition:
  256.  
  257. Special macros are normally preceded with the '@' character.  These macros 
  258. can be used to combine logical groupings of commands, e.g., throttle 
  259. commands or hat switch commands.   The best way to familiarize yourself 
  260. with a special macro is to examine one.  The following example describes a 
  261. special macro for the hat switch views on your FCS or PFCS:
  262.  
  263.        @StandardViews = HU UAROW HL LAROW HR RAROW HD DAROW 
  264.  
  265. By using the @StandardViews macro in your M22 or MDF file you eliminate 
  266. the need to specify the keypress associated with each position of the hat 
  267. switch on your FCS or PFCS.  GAME and THR commands can be similarly 
  268. combined or grouped to specify analog or digital throttle commands. 
  269.  
  270.  
  271. .TOPIC:
  272. MDEF
  273. Command: MDEF Filename
  274.  
  275. Purpose: Macro Definition File Command
  276.  
  277. Macro definition (.M22 or .MDF extension) files allow the user to define 
  278. named macros which can then be referenced in program F22 or ADV files, 
  279. respectively.  The macro definition file must be in the same directory as 
  280. the program file.  More than one MDEF statement can be included in a F22 
  281. or ADV file, the only limitation being that the total number of macros 
  282. defined does not exceed 400.  Each line in the macro file normally 
  283. contains an entry of the form: 
  284.  
  285.                   Macroname = Macro Body 
  286.  
  287. It may also include REM statements and other format lines (e.g., the 
  288. tilde (~) character is used by the original Command & Control Center 
  289. program for formatting purposes).  The macro name can be any continuous 
  290. group of characters. Spaces and Tab characters may not be used.  Although 
  291. macro names may be any length, only the first 16 characters are 
  292. significant.  Macros can be used in a variety of ways.  The simplest way 
  293. is to name a key with its function, e.g., 'FlapsUp = u'.  This would allow 
  294. you to assign the flaps up function in your .F22 or .ADV program file by 
  295. adding the following BTN line: 
  296.  
  297.                       'BTN 1 FlapsUp'. 
  298.  
  299. NOTE: The macro definition file extension (either .M22 or .MDF) is always 
  300. added by the compiler. 
  301.  
  302. .TOPIC:
  303. FCLK
  304. Command: USE FCLK
  305.  
  306. Device: F-22 (alone or with MK2 or TQS throttle)
  307.  
  308. Purpose: This instruction tells the F-22 to base its character timing on 
  309. the frame rate of the simulator.  This is useful for sims which only allow 
  310. one character code per frame which helps to keep the throttle and other 
  311. characters synchronized with the simulation.
  312.  
  313. The characters will be clocked out of the F-22 at the rate of one per 
  314. frame.  If an FCLK input is not seen by the F-22 processor for a period of 
  315. approximately 3 seconds, the F-22 will revert to normal operation, basing 
  316. its character timing on the RATE parameter.  FCLK operation will resume 
  317. once the processor sees the FCLK signals again.
  318.  
  319. .TOPIC:
  320. NOTHR
  321. Command: USE NOTHR
  322.  
  323. Device: F-16 Throttle Quadrant System (TQS)
  324.  
  325. Purpose: This instruction is used to force the TQS into analog throttle 
  326. mode, thereby disabling digital throttle communication.
  327.  
  328. The USE NOTHR statement should be entered on its own line near the top 
  329. of your program (F22) file.
  330.  
  331.  
  332. .TOPIC:
  333. USE
  334. Command: USE DeviceSetting
  335.  
  336. Where DeviceSetting = WCS, FCLK, TQS, MTYPE, NOTHR, XIO
  337.  
  338. Purpose: Program (F22 File) Configuration Statement 
  339.  
  340. Equipment setup can be varied, depending on the specific ThrustMaster gear 
  341. installed.  'USE WCS' indicates that you are using the Mark II throttle. 
  342. 'USE FCLK' tells the F-22 flight stick to base its character timing on the 
  343. frame rate of the simulator in use.  'USE XIO' instructs the F-22 to 
  344. include the additional mini-cockpit inputs.  'USE TQS' tells the F-22 to 
  345. include the TQS throttle registers so it can get information on the 
  346. throttle, trackball, and T1-T14 buttons on the TQS.  
  347.  
  348. With the TQS, you can also include the 'USE MTYPE A1-A5, or B1-B10' 
  349. statement, which allows TQS buttons T1 and T6 to emulate the left and 
  350. right buttons on your mouse. Button T3 on the TQS can be used to emulate 
  351. the middle mouse button, if your mouse driver supports three-button 
  352. operation.  MTYPE settings A1-A5 should be used to specify a Microsoft 
  353. two-button mouse format.  MTYPE settings B1-B10 should be used to specify 
  354. a Logitech three-button mouse format. 
  355.  
  356.  
  357. .TOPIC:
  358. MT
  359. Command: BTN MT Setting
  360.  
  361.          Where Setting = MacroName or Keypress Sequence
  362.  
  363. Device: TQS Throttle w/F-22, or Mark II Throttle with F-22
  364.  
  365. Purpose: Assigns character generation to the minimum throttle position.
  366.  
  367. See also THR Throttle Command
  368.  
  369. MT is treated just like any button, even though it is actually a throttle 
  370. position.  Minimum throttle is that small region between the idle detente 
  371. (the first notch) and full off.  MT types any assigned character only 
  372. once (you could say it has a built-in /N modifier).  If continuous 
  373. output is desired, use the button modifiers () and {}.  Moving the 
  374. throttle from the full off position to idle detente acts like "releasing" 
  375. the MT switch.  
  376.  
  377. MT cannot be used with the slash codes /T, Rocker Switch Settings.
  378.  
  379. MT operates only when the throttle is defined for digital operation.  MT 
  380. also must be placed after the THR line or @DigitalThrottle line.
  381.  
  382. .TOPIC:
  383. JSX
  384. Joystick X-Axis Input
  385.  
  386. Device: F-22 and FLCS
  387.  
  388. Purpose: Assigns character generation (type 1, 2, or 3) to the joystick 
  389. x-axis (the left-right motion of the joystick)
  390.  
  391. See also JSY Command
  392.  
  393. Type 1 Device:
  394.  
  395. Use: JSX 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
  396.  
  397. JSX as a type 1 device follows the same format as type 1 ANT.
  398.  
  399. Type 2 Device:
  400.  
  401. Use: JSX 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
  402.  
  403. JSX as a type 2 device follows the same format as type 2 ANT.
  404.  
  405. Type 3 Analog Device:
  406.  
  407. Use: JSX 3 LeftCharacter CenterCharacter RightCharacter
  408.  
  409. JSX type 3 follows the format for a basic type 3 device.  The left and 
  410. right characters will be generated continuously, while the center 
  411. character will be sent only once.
  412.  
  413. NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH 
  414. THE JSX STATEMENT.
  415.  
  416. Calibration is required for the joystick to be used in digital mode.  This 
  417. can only be done after the JSX statement has been downloaded to the F-22.  
  418. If no JSX statement is used in the download file, the F-22 defaults to 
  419. analog mode.
  420.  
  421. .TOPIC:
  422. JSY
  423. Joystick Y-Axis Input
  424.  
  425. Device: F-22 and FLCS
  426.  
  427. Purpose: Assigns character generation (type 1, 2, or 3) to the joystick 
  428. x-axis (the forward-backward motion of the joystick)
  429.  
  430. See also JSX Command
  431.  
  432. Type 1 Device:
  433.  
  434. Use: JSY 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
  435.  
  436. JSY as a type 1 device follows the same format as type 1 ANT.
  437.  
  438. Type 2 Device:
  439.  
  440. Use: JSY 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
  441.  
  442. JSY as a type 2 device follows the same format as type 2 ANT.
  443.  
  444. Type 3 Analog Device:
  445.  
  446. Use: JSY 3 LeftCharacter CenterCharacter RightCharacter
  447.  
  448. JSY type 3 follows the format for a basic type 3 device.  The left and 
  449. right characters will be generated continuously, while the center 
  450. character will be sent only once.
  451.  
  452. NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH 
  453. THE JSY STATEMENT.
  454.  
  455. Calibration is required for the joystick to be used in digital mode.  This 
  456. can only be done after the JSY statement has been downloaded to the F-22.  
  457. If no JSY statement is used in the download file, the F-22 defaults to 
  458. analog mode.
  459.  
  460. .TOPIC:
  461. ANT
  462. Antenna Knob Command: ANT Setting
  463.  
  464. Device: TQS Only
  465.  
  466. Purpose: Assigns character generation (type 1 or 2) to antenna knob 
  467.          rotation.
  468.  
  469. Type 1 Device:
  470.  
  471. Use: ANT 1 #steps StepUpCharacter StepDownCharacter CenterCharacter
  472.  
  473. ANT follows the basic format for a type 1 device, requiring up and down 
  474. (or increase and decrease) characters.  It also has a center character for 
  475. use in game or simulator commands having a centering function.  If the 
  476. center character is not needed, simply insert an unused keystroke (! is 
  477. used here):
  478.  
  479. Example: ANT 1 3 U D !
  480.  
  481. The "U" is the StepUpCharacter, with "D" playing the role of the 
  482. SteDownCharacter.  #steps defines that 3 characters will be typed on 
  483. either side of the center position as the knob is moved stop-to-stop.
  484.  
  485.  
  486. Type 2 Device:
  487.  
  488. Use: ANT 2 #steps FullUpCharacter....CenterCharacter....FullDownCharacter
  489.  
  490. As a type 2 device, you need to define a character for each end-of-travel, 
  491. all the characters to use in between, a center character, and the total 
  492. number of characters, which must be an odd number. 
  493.  
  494.  
  495. NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH 
  496. THE ANT STATEMENT.
  497.  
  498. .TOPIC:
  499. RNG
  500. Range Knob Command: RNG Setting
  501.  
  502. Device:  TQS Only
  503.  
  504. Purpose:  Assigns character generation (type 1 or 2) to range knob 
  505.           rotation.
  506.  
  507. Type 1 Device:
  508.  
  509. Use: RNG 1 #steps StepUpCharacter StepDownCharacter
  510.  
  511. RNG requires up and down characters (or increase and decrease characters),
  512. and  the number of characters (#steps) to type to the computer as the knob 
  513. is moved from stop-to-stop.
  514.  
  515. Type 2 Device:
  516.  
  517. Use: RNG 2 #steps FullUpCharacter....FullDownCharacter
  518.  
  519. A type 2 RNG statement needs a character for each end-of-travel, all the 
  520. characters to use in between, and the total number (#steps) of characters 
  521. needed. 
  522.  
  523.  
  524. NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH 
  525. THE RNG STATEMENT.
  526.  
  527. .TOPIC:
  528. RDDR
  529. Rudder Command: RDDR Setting
  530.  
  531. Device:  Used with F-22 or FLCS and TQS with a rudder control
  532.          system (RCS)
  533.  
  534. Purpose:  Assigns character generation (type 1, 2, or 3) to the RCS
  535.  
  536. Type 1 Device:
  537.  
  538. Use: RDDR 1 #steps RudderLeftChar RudderRightChar CenterCharacter
  539.  
  540. Type 2 Device:
  541.  
  542. Use: RDDR 2 #steps FullLeftChar....CenterChar....FullRightChar
  543.  
  544. Type 3 Device:
  545.  
  546. Use: RDDR 3 LeftCharacter CenterCharacter RightCharacter
  547.  
  548. NOTE: NO SLASH CODES OR BUTTON MODIFIERS (/N, /H, etc.) CAN BE USED WITH 
  549. THE RDDR STATEMENT.
  550.  
  551. Calibration Required:  Calibration is required for the rudders to work 
  552. properly in digital mode.  Download a file containing the RDDR statement, 
  553. and then run the calibration utility (F22SETUP.EXE).  Select the rudder 
  554. calibration option.
  555.  
  556. .TOPIC:
  557. Keyboard Input
  558.  
  559. See also BTN Commands   Keyboard Operation
  560.  
  561. Program and macro files contain special instructions which tell your 
  562. computer what character or keypress to generate when you press each button 
  563. or hat-switch on your throttle and stick.  
  564.  
  565. Many of the keys on a normal AT-style keyboard generate scan codes when 
  566. pressed that do not translate into visible characters on your screen.  For 
  567. example, at the DOS prompt, try pressing the function keys at the top of 
  568. your keyboard (keys F1 - F12).  You won't see anything on the screen but 
  569. the computer "sees" each keypress because of the unique scan code it 
  570. generates.  The following keyboard template shows the special designations 
  571. that are used in your program and macro files to represent the keys on a 
  572. standard AT-style keyboard:
  573.  
  574.  ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12   SCRLCK
  575.  `  1 2 3 4 5 6 7 8 9 0 - = BSP    AUXINS AUXHOME AUXPGUP   NUML KP/ KP* KP-
  576.  TAB  q w e r t y u i o p [ ] \     AUXDEL AUXEND  AUXPGDN  KP7  KP8 KP9 KP+
  577.  CAPS  a s d f g h j k l ; ' ENT                            KP4  KP5 KP6
  578.  LSFT   z x c v b n m , . / RSFT         AUXUAROW           KP1  KP2 KP3
  579.  LCTL LALT SPC RALT RCTL        AUXLAROW AUXDAROW AUXRAROW  KP0  KP. KPENT
  580.  
  581.        Combinational Keypresses, e.g., CTL x  SHF x  ALT x
  582.  
  583. For example, if you want to instruct or program button S1 on your F-22 to 
  584. generate the "Backspace" character every time it is pressed, you would add 
  585. the following line to your program (F22) file:
  586.  
  587.                           BTN S1 BSP
  588. .TOPIC:
  589. Keyboard Operation
  590.  
  591. See also BTN Commands   Keyboard Input 
  592.  
  593. Programming your throttle or joystick to perform a particular function is 
  594. basically a matter of getting it to send the right sequence of key codes 
  595. to the PC. 
  596.  
  597. The keyboard operates by sending 'Make' and 'Break' codes to the PC. These 
  598. 'codes' are sequences of one or more data bytes. They are not 'ASCII 
  599. Characters', but just indicate which keys have been moved. When you press 
  600. a key, the 'Make' code is sent. When you release the key, the 'Break' code 
  601. is sent. Each key on the keyboard has a unique sequence of codes assigned 
  602. to it for its 'Make' and 'Break' sequences.
  603.  
  604. The PC can't actually determine whether a key is pressed or released at 
  605. any particular time. Rather, it simply keeps track of the 'Make' and 
  606. 'Break' codes. When it receives a 'Make' code, it flags the key as pressed 
  607. until it receives the corresponding 'Break' code, at which time it flags 
  608. the key as released. 
  609.  
  610. Since the sequencing of the 'Make' and 'Break' codes is important to the 
  611. discussion of button commands and Combinational Keypresses, it will be 
  612. convenient to adopt some notation for them. The '+' character will be used 
  613. to indicate the 'Make' code for a key, and the '-' character will be used 
  614. to indicate the 'Break' code. For instance: +a -a would indicate the press 
  615. and subsequent release of the 'a' key.
  616.  
  617. .TOPIC:
  618. RATE
  619. Rate Command: RATE ####
  620.  
  621.               Where: #### is a number between 0 and 1000
  622.  
  623. Device: F-22 or FLCS with TQS or Mark II Throttle
  624.  
  625. RATE is the speed at which your equipment generates keyboard characters.  
  626. These characters are then stored in the keyboard buffers.  Rate settings 
  627. are defined in milliseconds.  For example, a rate setting of 20 would 
  628. generate characters quickly, while a rate setting of 1000 (1000ms=1sec) 
  629. would generate characters very slowly (for a computer). Begin by setting 
  630. the RATE at 100, then adjust the setting up/down according to how your 
  631. game performs. 
  632.  
  633. NOTE:  Some game software programs read keyboard buffer information very 
  634. slowly.  While playing "Wing Commander" for example, you push the MARK II 
  635. WCS throttle forward to full power and it should generate 50 throttle 
  636. increase characters.  However, during this time "Wing Commander" is busy 
  637. executing graphics or sound.  As a result, you lose characters because the 
  638. buffers were full and your computer (controlled by your game software) may 
  639. have read only half the characters generated during the throttle increase.  
  640. You're at half throttle!  If you find yourself in a situation where you 
  641. are losing characters, adjusting the rate setting may be the solution to 
  642. enhancing your game play. Enter the RATE setting by placing the cursor one 
  643. space to the right of RATE on the template and type in 100. 
  644.  
  645.  
  646. .TOPIC:
  647. REM
  648. Remark Command: REM
  649.  
  650. Game program files often contain lines that start with or contain the word 
  651. "REM".  "REM" is short for "REMARK".  The REM command is useful when you 
  652. need to place comments in your file for the sake of explaining things.  
  653. Any characters or text that follow the REM command are ignored as program 
  654. instructions.
  655.  
  656. All comment lines (which could include the name of the game and the 
  657. manufacturer's name, the author's name, the date the file was 
  658. created/modified etc.) must start with a "REM" statement. 
  659.  
  660. Example:
  661.  
  662. REM Sabre Jet Fighter
  663. REM By Combat Simulations, Inc.
  664. REM F22 file created by John Doe
  665.  
  666. .TOPIC:
  667. THR
  668. Throttle Input
  669.  
  670. Device: TQS or WCS Mark II Throttle
  671.  
  672. Purpose: Assigns character generation (type 1 or 2) to the throttle 
  673.  
  674. See also MT Minimum Throttle Command
  675.  
  676. NOTE: Omit or place REM in front of the throttle statement in your F22 or 
  677. B50 file in order for the throttle device to be recognized as an analog 
  678. device.
  679.  
  680. Type 1 Device:
  681.  
  682. Use: THR 1 #Steps #ABSteps ThrUp ThrDown ABEntry ABExit APUp ABDown
  683.  
  684. Type 2 Device:
  685.  
  686. Use: THR 2 #Steps #ABSteps ThrottleIdle...ThrottleMax MinAB...MaxAB
  687.  
  688.  
  689. Type 1 Throttle Statement:
  690.  
  691. The Type 1 throttle statement defines the keyboard output for throttle 
  692. movement between idle and MIL detents and the afterburner action (the 
  693. range between MIL detente and full-forward).  In order to use a Type 1 
  694. throttle statement you will need to know the throttle increase and 
  695. decrease characters, and the number of steps it takes to go from idle to 
  696. full throttle (not including afterburner or full power, if your simulation 
  697. has commands for this).  
  698.  
  699. As an example, let's assume that the throttle increase and decrease 
  700. characters are + and -, respectively, and the simulation uses a maximum of 
  701. 10 keystrokes to go from idle detent to full power (or back again).  So, 
  702. for the initial portion of the throttle statement, we have:
  703.  
  704.     #Steps  =  10
  705.     ThrUp   =  +
  706.     ThrDown =  -
  707.  
  708. Now for the afterburner portion of the throttle statement.  Simulations 
  709. handle the afterburner in a variety of ways:
  710.  
  711. Case 1. There is NO afterburner or full power command, only the 
  712.         throttle increase keys.
  713. Case 2. There ARE afterburner or full power keystrokes.
  714. Case 3. There are keystrokes to get in and out of afterburner, AND 
  715.         increase/decrease keys for the afterburner.
  716.  
  717. In the first case above, make the afterburner "look like" a normal 
  718. throttle increase or decrease:
  719.  
  720.     #ABSteps  = 2
  721.     ABEntry   = +
  722.     ABExit    = -
  723.     ABUp      = +
  724.     ABDown    = -
  725.  
  726. If you set up your throttle like this, consider reducing the number of 
  727. throttle steps (#Steps) so that full power is only reached at or past the 
  728. MIL detent position (i.e., change #Steps above from 10 to 8, since we've 
  729. defined 2 AB steps).  Putting everything together, our Type 1 throttle 
  730. statement for case 1 above should look like this:
  731.  
  732.                         THR 1 8 2 + - + - + -
  733.                             │ │ │ │ │ │ │ │ │
  734.                    Type─────┘ │ │ │ │ │ │ │ └─────ABDown
  735.                    #Steps─────┘ │ │ │ │ │ └─────────ABUp
  736.                    #ABSteps─────┘ │ │ │ └─────────ABExit
  737.                    ThrUp──────────┘ │ └──────────ABEntry
  738.                    ThrDown──────────┘
  739.  
  740. For the second situation (case 2), let's assume our simulation uses 
  741. keystrokes for turning full power on and off.  Let's say the commands are 
  742. : for on and ; for off.  One possibility is:
  743.  
  744.     #ABSteps  = 2
  745.     ABEntry   = +
  746.     ABExit    = -
  747.     ABUp      = :
  748.     ABDown    = ;
  749.  
  750. By using the : and ; characters for ABUp and ABDown, the MIL detent will 
  751. let your hand "know" that you're at maximum throttle without going to 
  752. afterburner.  You have to push the throttle past the detent position to 
  753. kick in the afterburner.  Our case 2 throttle statement would look like 
  754. this:
  755.  
  756.                         THR 1 10 2 + - + - : ;
  757.                             │  │ │ │ │ │ │ │ │
  758.                    Type─────┘  │ │ │ │ │ │ │ └─────ABDown
  759.                    #Steps──────┘ │ │ │ │ │ └─────────ABUp
  760.                    #ABSteps──────┘ │ │ │ └─────────ABExit
  761.                    ThrUp───────────┘ │ └──────────ABEntry
  762.                    ThrDown───────────┘
  763.  
  764. For the third possibility (case 3), let's assume that : and ; are used to 
  765. turn the afterburner on and off, but > and < are used for afterburner 
  766. increase and decrease, respectively.  Let's also assume that the game 
  767. allows the afterburners to be increased 3 times (using 3 keypresses, of 
  768. course).  Therefore we have:
  769.  
  770.     #ABSteps  = 3
  771.     ABEntry   = :
  772.     ABExit    = -
  773.     ABUp      = >
  774.     ABDown    = <
  775.  
  776. Our case 3 throttle statement would look like this:
  777.  
  778.                         THR 1 10 2 + - : ; > <
  779.                             │  │ │ │ │ │ │ │ │
  780.                    Type─────┘  │ │ │ │ │ │ │ └─────ABDown
  781.                    #Steps──────┘ │ │ │ │ │ └─────────ABUp
  782.                    #ABSteps──────┘ │ │ │ └─────────ABExit
  783.                    ThrUp───────────┘ │ └──────────ABEntry
  784.                    ThrDown───────────┘
  785.  
  786.  
  787. Type 2 Throttle Statement:
  788.  
  789. Use: THR 2 #Steps #ABSteps ThrottleIdle...ThrottleMax MinAB...MaxAB
  790.  
  791. Like a Type 1 throttle statement, the Type 2 throttle statement defines 
  792. the keyboard output for throttle movement between idle and MIL detents and 
  793. the afterburner action.  If a simulation gives a throttle 6 levels of 
  794. power and uses keys 1-6, but no afterburner, then the throttle information 
  795. could look like this:
  796.  
  797.     #Steps     = 5
  798.     #ABSteps   = 1
  799.     ThrottleIdle...ThrottleMax = 1 2 3 4 5
  800.     MinAB...MaxAB = 6
  801.  
  802. This puts the maximum throttle setting in the afterburner position.  The 
  803. resulting THR 2 statement would look like this:
  804.  
  805.                         THR 2 5 1 1 2 3 4 5 6
  806.                             │ │ │ └───┬───┘ │
  807.                    Type─────┘ │ │     │     └───────────────MinAB...MaxAB
  808.                    #Steps─────┘ │     └────────ThrottleIdle...ThrottleMax
  809.                    #ABSteps─────┘
  810.  
  811. Now assume the simulation still has 6 different power levels, but included 
  812. 2 afterburner levels using & and *.  The throttle information would look 
  813. like this:
  814.  
  815.     #Steps     = 6
  816.     #ABSteps   = 2
  817.     ThrottleIdle...ThrottleMax = 1 2 3 4 5 6
  818.     MinAB...MaxAB = & *
  819.  
  820. The THR 2 statement would look like this:
  821.  
  822.                         THR 2 6 2 1 2 3 4 5 6 & *
  823.                             │ │ │ └───┬─────┘ ├─┘
  824.                    Type─────┘ │ │     │       └─────────────MinAB...MaxAB
  825.                    #Steps─────┘ │     └────────ThrottleIdle...ThrottleMax
  826.                    #ABSteps─────┘
  827.  
  828.  
  829. .TOPIC:
  830. BTN
  831. Button Command: BTN MacroName or KeySequence
  832.  
  833. See also Combinational Keypresses   Keyboard Input
  834.  
  835. Purpose: Assigns a button on your throttle or stick device to generate 
  836. single or multiple keyboard characters (either directly or indirectly 
  837. through a macro.)
  838.  
  839. Example 1:  BTN T3 R
  840.  
  841. The character "R" is typed to the computer when button T3 on the throttle 
  842. controller is pressed.
  843.  
  844.  
  845. Example 2:  BTN H1U A B C
  846.  
  847. The character sequence "A B C" is typed to the computer when you press hat 
  848. switch 1 up on your F-22 flight stick.
  849.  
  850.  
  851. Example 3:  BTN S4 ToggleRadarOnOff
  852.  
  853. A macro named "ToggleRadarOnOff" is called when button S4 on your F-22 
  854. flight stick is pressed.
  855.  
  856.  
  857. Button modification commands provide additional versatility and 
  858. functionality to your F-22 and/or TQS/WCS buttons and switches.  They can 
  859. be used to do anything from toggling a designated button between as many as 
  860. 15 different macros, or performing one macro on the press of a button and 
  861. another on the release.  There are literally hundreds of different ways 
  862. your buttons and switches can be configured.      
  863.  
  864. These commands are typically placed in your F22 files immediately after 
  865. the Button Codes  (i.e. BTN S1) and just before the Macro names. 
  866.  
  867. Additional Button Command Programming Information:
  868.  
  869.     Button Press & Release          /P /R Commands
  870.     PORTBx Command                  Analog Joystick Buttons
  871.     BTN S3 In/Out Command           /I /O Commands
  872.     Rocker Switch Settings          /U /M /D Commands
  873.     /A                               Force Analog  
  874.     /T                               Toggle
  875.     /N                               Force Single Character
  876.     /H                               Hold
  877.     TG1/TG2                          F-22 Trigger
  878.     TG                               FCS/PFCS/XL Trigger
  879.     Combinational Keypresses        
  880.     Basic Rules For Using Slash Codes
  881.  
  882. .TOPIC:
  883. /T
  884. Toggle Command: /T
  885.  
  886. Using the /T toggle code in a BTN line will allow any combination of eight 
  887. buttons to toggle between as many as 64 separate macros. This means that 
  888. you may choose to use this toggle option on four F-22 buttons and four TQS
  889. or WCS buttons, or have six toggling buttons on the TQS or WCS and two on
  890. the F-22, and vice versa, etc.
  891.  
  892. Note - You can place toggle codes on Hat switches but you are limited to 
  893. only two toggles per Hat position. 
  894.  
  895. Let's look at an example: 
  896.  
  897. BTN S2 /T Chaff 
  898.        /T Flare 
  899.        /T ScreamForHelp 
  900.  
  901. In this example BTN S2 (button #2) is using the toggle option.  When 
  902. button #2 is pressed it will toggle through "Chaff", "Flare", and 
  903. "ScreamForHelp".   
  904.  
  905. Basically, if you use more than two toggle commands, the button or switch 
  906. programmed with toggles will cycle through the toggles sequentially.  When 
  907. the last macro has been toggled, it will begin the sequence again, 
  908. starting with the first macro. 
  909.  
  910. .TOPIC:
  911. Button Press & Release
  912. Button Press & Release Commands (/P and /R):
  913.  
  914. The button press command (/P) is used to indicate that the specified 
  915. keypress or macro which follows is to be generated upon the press of the 
  916. button or switch.   The /P command is designed to be used in conjunction 
  917. with the /R command.   
  918.  
  919. For example: 
  920.  
  921. BTN S2 /P Chaff 
  922.        /R Flare 
  923.  
  924. In this example BTN S2 (button #2) is using the press and release option.  
  925. When this file is downloaded to the F-22 button #2 will generate the Chaff 
  926. macro when pressed, and the Flare macro when released. When using the 
  927. press and release commands remember to include both the /P and /R and 
  928. their respective definitions. 
  929.  
  930. .TOPIC:
  931. /N
  932. Force Single Character Code Command: /N 
  933.  
  934. Using the /N command in a button or switch line forces the macro defined 
  935. character to generate only once per press of this button. 
  936.  
  937. For example: 
  938.  
  939. BTN S2 /N FireMissles 
  940.  
  941. In this example BTN S2 (button #2) is using the /N option.  You should 
  942. recognize that the "FireMissles" has been defined in the adjoining M22 
  943. file.  Let's say "FireMissles" is defined as an "X".   Normally, without 
  944. the /N option, button S2 would generate "X's" as long as button 2 was held 
  945. down.  With the /N in the command line, button 2 would only generate one 
  946. "X" per press.  This is what we mean by forcing single character 
  947. generation.   
  948.  
  949. If you're using a Mark II WCS with the F-22 you will notice that T7 
  950. (rocker up) and T8 (rocker down) usually use the /N code.  This is because 
  951. the rocker switch is actually seen as a button device.   When you move the 
  952. rocker switch up, it is interpreted as pressing a button and holding it.  
  953. When you return the rocker switch to the middle position it is seen as 
  954. releasing the button.  Therefore, when you put the rocker in the up or 
  955. down position it will generate repeating characters until the rocker is 
  956. returned to the middle.  To eliminate this potential problem, the /N 
  957. option is used. 
  958.  
  959. By now you should have a pretty good feel for placing the configuring 
  960. codes.  With the /N command there are a few do's and don'ts. Don't use it 
  961. unless you have to - it uses up valuable memory. Also, it cannot be used 
  962. with the Hat Middle positions.
  963.  
  964. .TOPIC:
  965. BTN S3 In/Out Command
  966. Button S3 In/Out Command (/I and /O):
  967.  
  968. The S3 In/Out codes relate to a specific hardware design enhancement 
  969. within the F-22 and FLCS sticks.   
  970.  
  971. When the S3 button is held in (pressed) all buttons and switches using the 
  972. /I and /O designation will perform a different set of functions.  When the 
  973. S3 button is released the designated buttons and switches will return to 
  974. their standard functions. 
  975.  
  976. The codes are /I and /O.  The /I code indicates that the macro which 
  977. follows is to be performed when the S3 button is pressed and held.   The 
  978. /O code indicates that the macro which follows is to be performed when the 
  979. S3 button is in the out position (not pressed). This In/Out capability 
  980. will only occur when the buttons and switches use the /I and /O codes. 
  981.  
  982. For example: 
  983.  
  984. BTN S2 /I DropBombs 
  985.        /O FireMissles 
  986.  
  987. In this example button S2 would perform "DropBombs" when the S3 button is 
  988. pressed and held.  When button S3 is not engaged button S2 will perform 
  989. "FireMissles". 
  990.  
  991. All buttons and switches can be programmed to take advantage of this 
  992. option, except for the S3 switch itself, which does the In/Out toggling. 
  993. Remember, when using this option, whatever functions you program to the 
  994. BTN S3 line will be performed in addition to the switching function.  We 
  995. advise when using the In/Out function that you keep things simple, and not 
  996. program anything to the BTN S3 line. 
  997.  
  998. .TOPIC:
  999. Rocker Switch Settings
  1000. Mark II Throttle Rocker Switch Commands: /U, /M and /D
  1001. TQS Dogfight (T7/T8) Switch Commands: /U, /M, and /D
  1002.  
  1003. The /U, /M, and /D codes are available in conjunction with use of the
  1004. rocker switch on the Mark II WCS throttle or the Dogfight switch (T7/T8)
  1005. on the F-16 TQS.
  1006.  
  1007. These codes can be used to modify all the buttons and switches on the WCS 
  1008. and F-22 to different sets of commands depending upon the position of the 
  1009. three-way rocker switch on the handle of the WCS or the Dogfight switch
  1010. on the TQS.
  1011.  
  1012. For example: 
  1013.  
  1014. BTN S1 /U AirAirRadar 
  1015.        /M NavRadar 
  1016.        /D GroundRadar 
  1017.  
  1018. In this example BTN S1 (button #1 on the F-22) would generate 
  1019. "AirAirRadar" when button #1 was pressed when the three-way rocker 
  1020. switch on the WCS handle was in the upper position or the Dogfight
  1021. switch on the TQS was in the T7 positon.  "NavRadar" would be
  1022. generated when button #1 is pressed and the three-way rocker switch on
  1023. the WCS or the Dogfight switch on the TQS was in the middle position.
  1024. And finally, when the three-way rocker switch on the WCS was in the down
  1025. position or the Dogfight switch on the TQS was in the T8 position, button
  1026. #1 would generate "GroundRadar".
  1027.  
  1028. .TOPIC:
  1029. /H
  1030. Hold Button Command: /H 
  1031.  
  1032. In some circumstances, it is necessary to hold the key down even when 
  1033. other buttons are pressed. The most common examples are keys that move 
  1034. control surfaces, and situations that require multiple keys to be held to 
  1035. achieve a particular view. For instance, suppose you wanted to program a 
  1036. hat to control the rudders. You might try (assuming 'l' and 'r' are the 
  1037. left and right rudder keys respectively)
  1038.  
  1039.                            BTN H1L l
  1040.                            BTN H1R r
  1041.  
  1042. This would activate the rudders, but because of the way the repeating keys 
  1043. operate on the F-22, as soon as you pushed another button the rudder would 
  1044. return to it's neutral position. The use of the /H code would get around 
  1045. the problem, since it does not generate a 'Break' until the Hat is 
  1046. released. The coding would look like this:
  1047.  
  1048.                           BTN H1L /H l
  1049.                           BTN H1R /H r
  1050.  
  1051. The /H codes are also slightly different in the way they appear on the 
  1052. screen. There is only a single 'Make' code generated, so you only see one 
  1053. character when you press the button. The PC will see the key as held, 
  1054. however, and in situations where the /H is required, the absence of the 
  1055. repeated 'Make' codes is of no consequence. The game will be looking only 
  1056. at the first 'Make' code in such situations, anyway.
  1057.  
  1058. Holding down multiple keys is simply a matter of adding them to the list. 
  1059. To hold down KP8 and KP5 for a combinational view, the program would look 
  1060. like this:
  1061.  
  1062.                       BTN H1U /H KP8 KP5
  1063.  
  1064. When the button was pressed, the sequence generated would be:
  1065.  
  1066.                            +KP8 +KP5
  1067.  
  1068. and when the button was released, the sequence would be:
  1069.  
  1070.                            -KP8 -KP5
  1071.  
  1072. Any characters generated by other buttons while H1U was held would be 
  1073. sent normally,
  1074.  
  1075. While /H codes are very useful, they are not without a few problems. 
  1076. First, as mentioned earlier in the discussion of repeating keys, it's 
  1077. generally not possible to use them for anything other than unmodified 
  1078. keys. The use of upper-case, SHF, ALT or CTL modifiers creates problems in 
  1079. that the PC will apply those modifiers to all characters transmitted while 
  1080. the /H is held down, i.e.
  1081.  
  1082.                            BTN S1 /H A
  1083.  
  1084. will upper-case all keys transmitted while S1 is pressed. Consequently, 
  1085. the use of such modifiers must generally be avoided in /H groups.
  1086.  
  1087. A second limitation placed on /H groups is that they cannot be used with 
  1088. the /I and /O, or the /U, /M, and /D modifiers. The reason for this is not 
  1089. immediately obvious, but to have allowed them to be used there would 
  1090. create a strong likelihood of 'stuck' keys during operation. Consider the 
  1091. following example:
  1092.  
  1093.                          BTN S1 /O /H a
  1094.                                 /I /H b
  1095.  
  1096. Now suppose that during game play, you were to press S1, then press S3, 
  1097. then release S1. Since S3 was not pressed initially, the /O side of the 
  1098. definition would be in control. The initial press of S1 would send the 
  1099. 'Make' code for the 'a' as expected. When S3 was pressed, that would put 
  1100. the /I side of the definition in control. Subsequently releasing S1 would 
  1101. result in the 'Break' break code for the 'b' being sent. The sequence at 
  1102. the PC would be: +a -b
  1103.  
  1104. The PC has seen the 'a' pressed, but never sees it released, so it will 
  1105. consider it to be still pressed. The key is 'stuck', and will remain that 
  1106. way until a 'Break' for the 'a' is sent, either by hitting the 'a' on the 
  1107. keyboard, or sending a complete 'a' with the F-22. It may remain stuck 
  1108. even if you exit the game.
  1109.  
  1110. The limitation on the /I, /O, /U, /M and /D codes can be overcome in a 
  1111. couple of ways. One is simply to come up with a scheme that doesn't need 
  1112. them. The use of the /I and /O codes with held characters most commonly 
  1113. shows up in view switching situations. One method that works in some 
  1114. situations is to just use unmodified views on the hat, then add the 
  1115. modifier key to button S3. For example, suppose that the four basic views 
  1116. are KP8, KP6, KP2, and KP4. Also assume that adding KP5 to these four will 
  1117. add the UP modifier, and that adding KP0 to them will add the DOWN 
  1118. modifier, i.e. KP4 is Look Left and KP4 + KP5 is Look Up and Left. In that 
  1119. case, a setup like this:
  1120.  
  1121.                   BTN H1U /H KP8     rem Look Up
  1122.                   BTN H1L /H KP4     rem Look Left
  1123.                   BTN H1D /H KP2     rem Look Back
  1124.                   BTN H1R /H KP6     rem Look Right
  1125.  
  1126.                   BTN S3 /H KP5      rem Add UP Modifier
  1127.                   BTN S4 /H KP0      rem Add DOWN Modifier
  1128.  
  1129. may prove workable, giving 12 views via combinations of the hat and the S3 
  1130. and S4 keys.
  1131.  
  1132. If no suitable arrangement can be found using the standard keys, it is 
  1133. possible to generate held keys within /I-/O and /U-/M-/D groups using the 
  1134. RAW function.
  1135.  
  1136. .TOPIC:
  1137. /A
  1138. Force Analog Mode Command: /A 
  1139.  
  1140. The /A command is no longer necessary with the F-22.  Joystick analog
  1141. button support for the F-22 is handled using the PORTBx Command.
  1142.  
  1143. Four of the buttons on the FLCS can be used as either analog devices,
  1144. digital devices, or both.  This means that in the analog mode they will 
  1145. run through the game card and function as your game software has 
  1146. designated.  In the digital mode these buttons will function through the 
  1147. keyboard, and will operate as you have designated in the FLCS file.  By 
  1148. using the /A command the buttons can do both at the same time. The buttons 
  1149. that have this capability are the S2, S3, S4, and TG1.  Whether these 
  1150. buttons operate in Analog, Digital, or both depends upon how the BTN line 
  1151. is defined. 
  1152.  
  1153. Normally a BTN line for switch S2 might look like -  
  1154.  
  1155. BTN S2 CloakingEngaged 
  1156.  
  1157. Using the following options in your FLCS file will have the following 
  1158. effect: 
  1159.  
  1160. Delete the entire line = Analog only 
  1161. Place a REM statement before the line = Analog only 
  1162. Include BTN statement with definition = Digital only 
  1163. Include BTN statement but no definition = No Digital or Analog 
  1164. Include BTN statement with /A and definition = Digital and Analog 
  1165. Include BTN statement with /A and no definition = Analog only 
  1166.  
  1167.  
  1168. Now let's review.   
  1169.  
  1170. If you left the BTN S2 line completely out of your FLCS file or REM'ed it 
  1171. out, that switch will only function as an Analog device.  It will then 
  1172. perform whatever the game software designates. 
  1173.  
  1174. If you left the button code line BTN S2 in you FLCS file there are two 
  1175. possible choices.  If you do not define BTN S2 with a macro, the button 
  1176. will not function as either an Analog or Digital device.  In essence it 
  1177. will not work at all.  We do not recommend using this option for obvious 
  1178. reasons.   
  1179.  
  1180. If you do define the BTN S2 line with a macro, as we did with 
  1181. "CloakingEngaged", the button will function as a Digital device only. The 
  1182. third option is to use the /A command.  This command is designed to be 
  1183. used in the following manner.  By placing this command following the BTN 
  1184. S2 statement and then following it with a macro definition, this button 
  1185. becomes both Digital and Analog.  This means that when BTN S2 is pressed 
  1186. it will function as the game software designed AND as you programmed in 
  1187. your FLCS file. 
  1188.  
  1189. And one final note, if you use the /A command in your FLCS without a 
  1190. definition the button or switch will function as an Analog device only.  
  1191. You should not use this method if you are trying to achieve the Analog 
  1192. function. 
  1193.  
  1194. .TOPIC:
  1195. BASIC RULES FOR USING SLASH CODES 
  1196.  
  1197. There are a few basic rules to follow when using forward slash codes (/).   
  1198.  
  1199. 1 - They must be placed after the button and switch codes (i.e. BTN 
  1200.     S2 /H MacroName) 
  1201.  
  1202. 2 - There must be a single space before and after the forward slash 
  1203.     codes (see preceding example) 
  1204.  
  1205. 3 - They must appear in a specific order when more than one type is 
  1206.     used for one button or switch (see "Slash Code Hierarchy" below). 
  1207.   
  1208.  
  1209. SLASH CODE HIERARCHY 
  1210. When using multiple slash codes for configuring a button or switch it is 
  1211. important to use the correct hierarchy.  The ordering of slash codes 
  1212. would proceed as defined 
  1213.  
  1214. 1 - The /U /M /D would precede all other slash codes.
  1215.  
  1216. 2 - The Force Analog (/A) command precedes /I, /O, /T, /P, & /R. 
  1217.  
  1218. 3 - The In/Out (/I and /O) command precedes /T and /P/R commands. 
  1219.  
  1220. 4 - The Toggle (/T) command precedes /P/R commands. 
  1221.  
  1222. 5 - The Press and Release (/P and /R) commands are always last. 
  1223.  
  1224. The following is an example: 
  1225.  
  1226. BTN S2 /U /A /I /T /P (MacroName{s})
  1227.                    /R (MacroName{s})
  1228.                 /T /P (MacroName{s})
  1229.                    /R (MacroName{s})
  1230.              /O /T /P (MacroName{s})
  1231.                    /R (MacroName{s})
  1232.                 /T /P (MacroName{s})
  1233.                    /R (MacroName{s})
  1234.        /M /A /I /T /P (MacroName{s})
  1235.                    /R (MacroName{s})
  1236.                 /T /P (MacroName{s})
  1237.                    /R (MacroName{s})
  1238.              /O /T /P (MacroName{s})
  1239.                    /R (MacroName{s})
  1240.                 /T /P (MacroName{s})
  1241.                    /R (MacroName{s})
  1242.        /D /A /I /T /P (MacroName{s})
  1243.                    /R (MacroName{s})
  1244.                 /T /P (MacroName{s})
  1245.                    /R (MacroName{s})
  1246.              /O /T /P (MacroName{s})
  1247.                    /R (MacroName{s})
  1248.                 /T /P (MacroName{s})
  1249.                    /R (MacroName{s})
  1250.  
  1251. It is important to note the sequence or hierarchy when using multiple 
  1252. slash codes in a F22 file.  You must strictly adhere to the order 
  1253. described above or you will experience problems when saving your files. 
  1254.  
  1255.  
  1256. .TOPIC:
  1257. SWAPTG
  1258. Swap Trigger Command: SWAPTG
  1259.  
  1260. The swap trigger option allows the default trigger setup to be swapped.  
  1261. Normally TG1 (trigger position #1) is the first click encountered when 
  1262. squeezing the trigger.  TG1, by default is an analog button so you do not 
  1263. need to use /A with that command.  TG2 is the second click.  By using the 
  1264. SWAPTG statement you can reverse the two positions, making TG1 the second 
  1265. click and TG2 the first.   
  1266.  
  1267. To use the SWAPTG command just place the command SWAPTG on its own line 
  1268. near the top of your program (F22 or B50) file.   
  1269.  
  1270. See also TG1/TG2
  1271.  
  1272. .TOPIC:
  1273. TG1/TG2
  1274. Command: BTN TG1 KeyPress or MacroName ...OR... 
  1275.          BTN TG2 KeyPress or MacroName
  1276.  
  1277. Device: F-22 and FLCS
  1278.  
  1279. BTN TG1 (trigger position #1) is activated by squeezing the red trigger on 
  1280. the F-22 or FLCS until you hear or feel the first "click".  This button is 
  1281. designed to behave like the normal analog trigger press on any 2-axis 
  1282. flight stick device.  There are 3 ways to achieve standard analog 
  1283. operation from your trigger:
  1284.  
  1285.     1) Omit the BTN TG1 line from your program (F22 or B50) file.
  1286.     2) Place a REM statement in front of the BTN TG1 line.
  1287.     3) Add the /A (analog) switch to your BTN TG1 line, i.e., BTN TG1 /A
  1288.  
  1289. If you decide to use your trigger as a digital device instead, i.e., you 
  1290. would like it to generate a certain keypress or series of keystrokes when 
  1291. pressed, then add the BTN TG1 KeyPress or MacroName command to your 
  1292. program file.  For example, let's say that your guns are fired by pressing 
  1293. key "g" on your keyboard.  You can program this to your F-22 trigger as 
  1294. follows:
  1295.  
  1296.     BTN TG1 g
  1297.  
  1298. If you press your trigger fully down, you'll hear and feel a second 
  1299. "click" as you pass the second detent position.  This is the second stage 
  1300. trigger position, or BTN TG2.  Some simulations provide separate commands 
  1301. for machine gun and cannon fire.  For example, Warbirds uses normal analog 
  1302. trigger for machine gun fire and key "b" to fire your secondary weapon 
  1303. (usually cannons).  Both machine gun and cannon fire can be programmed 
  1304. to your TG1 and TG2 positions as follows:
  1305.  
  1306.     BTN TG1 /A (FLCS line) or PortB1 IS TG1 (F-22 line)
  1307.     BTN TG2 /H b
  1308.  
  1309. The /H (hold) modifier is used to ensure that the cannons will continue to 
  1310. fire when the trigger is fully depressed even when other characters are 
  1311. being generated (e.g., you might be lowering flaps to tighten your turn in 
  1312. a slow speed dogfight).
  1313.  
  1314. See also SWAPTG command.
  1315.  
  1316. .TOPIC:
  1317. Introduction
  1318. Introduction:
  1319.  
  1320. See also Keyboard Input
  1321.  
  1322. Most games and simulations require typing in commands at the keyboard, 
  1323. using a joystick, or a combination of joystick movement and keyboard 
  1324. entry.  ThrustMaster products eliminate much (if not all) of the keyboard 
  1325. entry chores by having keystrokes assigned to particular switches, 
  1326. buttons, and knobs.  This is why your ThrustMaster throttle or joystick is 
  1327. plugged into the keyboard connector on your computer - the computer "sees" 
  1328. commands being typed from what it thinks is the keyboard.
  1329.  
  1330. Your throttle and joystick controls are "programmed" as to what 
  1331. information to send a game or simulation through a series of statements 
  1332. contained in download files.  This information resides in the controls 
  1333. until another group of instructions is downloaded to replace them (the 
  1334. instructions are NOT lost when the computer is powered down).  Take the 
  1335. time to look at an instruction, or program file (.F22 or .B50 file 
  1336. extension) to familiarize yourself with the way the statements look.  
  1337.  
  1338. .TOPIC:
  1339. Combinational Keypresses
  1340.  
  1341. See also Keyboard Input  BTN Command
  1342.  
  1343. Generating single keypresses or strings of single keypresses with the F-22 
  1344. is a straightforward process. The desired characters are simply listed in 
  1345. the BTN statement. There are several situations, though, that require that 
  1346. multiple keys be pressed simultaneously, and these can create problems. 
  1347. The correct programming method is often not clear as it depends on how the 
  1348. game processes the keystrokes. This section will attempt to explain the 
  1349. different techniques available and when these techniques should be used.
  1350.  
  1351. SHF, ALT, and CTL
  1352. -----------------
  1353.  
  1354. The most common form of simultaneous keypress is when it is necessary to 
  1355. generate a modified key like CTRL-C, ALT-J, or even 'A', since the 
  1356. upper-cased character implies that the SHF key is held down while the key 
  1357. is pressed. It is generally a simple matter to program these combinations  
  1358. with the F-22, you simply precede the character with the appropriate 
  1359. modifier:
  1360.  
  1361.                         BTN S1 CTL c
  1362.  
  1363. Any time you specify an upper-case character, the F-22 generates the
  1364. SHF code for you, so;
  1365.  
  1366.                         BTN S1 A
  1367.  
  1368. is actually treated as:
  1369.  
  1370.                         BTN S1 SHF a
  1371.  
  1372. and the key sequence generated is:
  1373.  
  1374.                        +SHF +a -SHF -a
  1375.  
  1376. It is worth noting that only the SHF, CTL, and ALT keywords are treated as 
  1377. modifiers. The variations that specify particular keys, such as LALT and 
  1378. RSFT are treated as regular keys. So if you program something like: BTN S1 
  1379. LALT j the sequence that is generated is:
  1380.  
  1381.                      +LALT -LALT +j -j
  1382.  
  1383. and an actual ALT-J combination does not occur. Programming it as:
  1384.  
  1385.                        BTN S1 ALT j
  1386.  
  1387. produces the desired:
  1388.  
  1389.                        +ALT +j -ALT -j
  1390.  
  1391. Simultaneous Groups
  1392. -------------------
  1393.  
  1394. As noted in the F-22 manual, if you enclose a set of characters in 'curly 
  1395. brackets' it causes the ordering of 'Make' and 'Break' codes to be 
  1396. modified so that the keys in the group are pressed simultaneously:
  1397.  
  1398.                           BTN S1 {a b c}
  1399.  
  1400. will send the sequence:
  1401.                          +a +b +c -a -b -c
  1402.  
  1403.  
  1404. This function is useful when two or more keys need to be pressed at the 
  1405. same time, but it does not hold the keys down for any appreciable length 
  1406. of time. They are pressed and then immediately released. The simultaneous 
  1407. group is also useful where a game requires a particular SHF or ALT key to 
  1408. be used. The normal SHF, ALT, and CTL modifiers always use the codes for 
  1409. the Left key, i.e. LSFT. If you needed 'Right Shift x' you could program 
  1410. it as:
  1411.  
  1412.                           BTN S1 {RSFT x}
  1413.  
  1414. and force the use of the Right Shift key. The generated sequence would
  1415. be:
  1416.                          +RSFT +x -RSFT -x
  1417.  
  1418.  
  1419. Repeating Keypresses
  1420. --------------------
  1421.  
  1422. It frequently becomes necessary in F-22 programming to generate keys that 
  1423. are 'held down' to achieve some particular function. Normally this can be 
  1424. done by just specifying a single character as a repeating key:
  1425.  
  1426.                              BTN S1 a
  1427.  
  1428. This generates a sequence of multiple 'Make' codes while the button is 
  1429. held down, and generates a single 'Break' code when the button is 
  1430. released. 
  1431.  
  1432. This is essentially what the keyboard does, but there is one fundamental 
  1433. difference. When another button is pressed and the F-22 sends another 
  1434. character, the F-22 will send a 'Break' code for the repeating character, 
  1435. even if the button (S1 in this example) is still held down. The keyboard 
  1436. does not send the 'Break' code until the key is released. For example, if 
  1437. you programmed: BTN S1 a BTN S2 b then pressed S1, pressed S2, released 
  1438. S2, and then released S1, the F-22 would generate something like:
  1439.  
  1440.                    +a +a +a +a -a +b +b +b +b -b
  1441.                     
  1442. whereas if you did the same thing on the keyboard using the actual 'a' and 
  1443. 'b' keys, the sequence would look like this:
  1444.  
  1445.                     +a +a +a +a +b +b +b +b -b -a
  1446.  
  1447. The F-22 was coded this way on purpose. When you're using the keyboard, 
  1448. you are generally aware of which keys you've got pressed at any particular 
  1449. time, and inappropriate combinations don't occur very often. When you're 
  1450. using the F-22, it's not always apparent what keys you are pressing. For 
  1451. example, look at the program segment:
  1452.  
  1453.                              BTN S1 A
  1454.                              BTN S2 b
  1455.  
  1456. If the F-22 actually emulated the keyboard, the generated sequence would
  1457. be:
  1458.                 +SHF +a +a +a +a +b +b +b +b -b -SHF -a
  1459.  
  1460. if you pressed them in the order outlined for the first example. If you 
  1461. looked at this on the screen, you would see 'AAAABBBB', rather than the 
  1462. 'AAAAbbbb' that you would expect, since the SHF key has not been released.
  1463. Forcing the 'Break' when S2 is pressed changes the sequence to:
  1464.  
  1465.                 +SHF +a +a +a +a -SHF -a +b +b +b +b -b
  1466.  
  1467. which is more in keeping with the intent of the program. This is a fairly 
  1468. simple example, worse problems could occur. If S1 were defined as 'ALT a',
  1469. then so long as S1 were held, the PC would see every key coming at it as 
  1470. having the ALT modifier added, i.e. you'd not only get 'ALT a' like you 
  1471. wanted, you'd get 'ALT b', too, since the ALT would still be down from the 
  1472. S1 press. Disastrous combinations could occur, consider what might happen 
  1473. if a program contained something like:
  1474.  
  1475.                           BTN S1 CTL a
  1476.                           BTN S2 ALT j
  1477.                           BTN S3 DEL
  1478.  
  1479. and all three buttons were pushed. The PC would see a simultaneous press 
  1480. of CTL-ALT-DEL, and would likely reboot. Probably not exactly what you 
  1481. wanted to happen.
  1482.  
  1483.  
  1484. .TOPIC:
  1485. RAW
  1486. RAW Data Codes
  1487.  
  1488. RAW data codes allow you complete control over what the F-22 sends to the 
  1489. PC. You specify the actual codes sent to the PC by their hex values. There 
  1490. are no real limits placed on the use of RAW codes, they can be used within 
  1491. the /I-/O and /U-/M-/D groups, and so you can generate any key sequence 
  1492. that you want to. A complete listing of the RAW sequences for the 'Make' 
  1493. and 'Break' codes on the 101-Key Keyboard is listed at the end of this 
  1494. note.
  1495.  
  1496. The RAW data function was designed for situations where the normal F-22 
  1497. functions would not handle the task at hand. The most common use of them 
  1498. is to generate the so-called 'non-native' keys that the F-22 will not 
  1499. normally transmit. If you look over the RAW codes chart, you'll see that 
  1500. the majority of keys send a single RAW code for a 'Make', and send the 
  1501. value '#F0' followed by that same RAW code for the 'Break'. These are the 
  1502. 'native' keys, and they correspond roughly to the keys on the older 84-Key 
  1503. AT keyboards. The other 'non-native' keys are primarily associated with 
  1504. the 101-Key Keyboard, and usually have an extra '#E0' added to the 
  1505. sequence. These keys include the auxiliary 'T-Cursor' pad and the other 
  1506. keys in the section of the 101-Key Keyboard between the main keys and the 
  1507. numeric pad.
  1508.  
  1509. The other primary use of the RAW codes is to generate key combinations 
  1510. that cannot normally be generated by the F-22, such as the use of held 
  1511. characters within /I-/O and /U-/M-/D Groups. The basic method for 
  1512. simulating a /H group is to generate a /P-/R set with the 'Make' codes on 
  1513. the /P side and the 'Break' codes on the /R side. For instance:
  1514.  
  1515.                    BTN S1 /P RAW(#1C)
  1516.                           /R RAW(#F0 #1C)
  1517.  
  1518. produces the same output as:
  1519.  
  1520.                        BTN S1 /H a
  1521.  
  1522. with the 'Make' code sent when the button is pressed and the 'Break' code 
  1523. being sent when it's released.
  1524.  
  1525. As mentioned earlier, using RAW codes within the /I-/O and /U-/M-/D groups 
  1526. is permitted, but it does not get around the basic problem with the 
  1527. 'stuck' keys. You have to set the programming up so that the problem does 
  1528. not occur. The usual method is to include the 'Make' codes for a single 
  1529. function on the /P side, and to include the 'Break' codes for all possible 
  1530. functions on the /R side. This is generally possible since multiple 'Make' 
  1531. codes for a key generally do no harm, and 'Break' codes for keys that have 
  1532. not been 'Made' are generally ignored. For example. the program segment:
  1533.  
  1534.   BTN H1U /O /H f g
  1535.           /I /H KP5 KP8
  1536.  
  1537. would not compile, but the equivalent:
  1538.  
  1539.  BTN H1U /O /P RAW(#2B #34)                         rem Make 'f' and 'g'
  1540.             /R RAW(#F0 #2B #F0 #34)                 rem Break f, g 
  1541.          /I /P RAW(#73 #75)                         rem Make KP5 and KP8
  1542.             /R RAW(#F0 #73 #F0 #75)                 rem Break KP5 & KP8 
  1543.  
  1544. would compile just fine. This does not avoid the stuck key problem though. 
  1545. You need to 'Break' both possibilities on both sides, even though you will 
  1546. only 'Make' one of the codes:
  1547.  
  1548.  BTN H1U /O /P RAW(#2B #34)   rem Make 'f' and 'g'
  1549.             /R RAW(#F0 #2B #F0 #34 #F0 #73 #F0 #75) 
  1550.                               rem Break f, g, KP5 & KP8 
  1551.          /I /P RAW(#73 #75)   rem Make KP5 and KP8
  1552.             /R RAW(#F0 #2B #F0 #34 #F0 #73 #F0 #75) 
  1553.                               rem Break f, g, KP5 & KP8 
  1554.  
  1555. One thing to watch for here is that all those RAW codes take some time to 
  1556. send, about 50% longer than a regular /H group. The best thing to do is to 
  1557. set the RATE parameter down to 0, increase it only if you experience 
  1558. problems with the game in question. Most of the games will work just fine 
  1559. with a RATE of 0, the exceptions are games that only handle 1 key stroke 
  1560. per frame.
  1561.  
  1562. Keyboard Chart
  1563. --------------
  1564.  
  1565. The following chart shows the 'Make' and 'Break' for the keys on the 
  1566. standard 101-key keyboard. These are the codes necessary to use the RAW 
  1567. function in F-22 programming.
  1568.  
  1569. The keyboard modifies certain of the 'non-native' key code sequences 
  1570. depending on the Shift and NumLock states. These additions can normally be 
  1571. ignored when programming the F-22 and the normal non-shifted sequence 
  1572. used.
  1573.  
  1574. -----------------------------------------------------------------------------
  1575.  
  1576.            *** STANDARD 101-KEY KEYBOARD SCAN CODE SEQUENCES ***
  1577.              For Use with the F-22 'RAW' Programming Function
  1578.  
  1579.                           ** Main Keyboard **
  1580. ----------------------------------------------------------------------------
  1581.   Key         Make Code                       Break Code         Notes
  1582. ----------------------------------------------------------------------------
  1583.   `              #0E                           #F0 #0E
  1584.   1              #16                           #F0 #16
  1585.   2              #1E                           #F0 #1E
  1586.   3              #26                           #F0 #26
  1587.   4              #25                           #F0 #25
  1588.   5              #2E                           #F0 #2E
  1589.   6              #36                           #F0 #36
  1590.   7              #3D                           #F0 #3D
  1591.   8              #3E                           #F0 #3E
  1592.   9              #46                           #F0 #46
  1593.   0              #45                           #F0 #45
  1594.   -              #4E                           #F0 #4E
  1595.   =              #55                           #F0 #55
  1596.   Backspace      #66                           #F0 #66
  1597.  
  1598.   Tab            #0D                           #F0 #0D
  1599.   Q              #15                           #F0 #15
  1600.   W              #1D                           #F0 #1D
  1601.   E              #24                           #F0 #24
  1602.   R              #2D                           #F0 #2D
  1603.   T              #2C                           #F0 #2C
  1604.   Y              #35                           #F0 #35
  1605.   U              #3C                           #F0 #3C
  1606.   I              #43                           #F0 #43
  1607.   O              #44                           #F0 #44
  1608.   P              #4D                           #F0 #4D
  1609.   [              #54                           #F0 #54
  1610.   ]              #5B                           #F0 #5B
  1611.   \              #5D                           #F0 #5D
  1612.  
  1613.   Caps Lock      #58                           #F0 #58
  1614.   A              #1C                           #F0 #1C
  1615.   S              #1B                           #F0 #1B
  1616.   D              #23                           #F0 #23
  1617.   F              #2B                           #F0 #2B
  1618.   G              #34                           #F0 #34
  1619.   H              #33                           #F0 #33
  1620.   J              #3B                           #F0 #3B
  1621.   K              #42                           #F0 #42
  1622.   L              #4B                           #F0 #4B
  1623.   ;              #4C                           #F0 #4C
  1624.   '              #52                           #F0 #52
  1625.   Enter          #5A                           #F0 #5A
  1626.  
  1627.   Left Shift     #12                           #F0 #12
  1628.   Z              #1A                           #F0 #1A
  1629.   X              #22                           #F0 #22
  1630.   C              #21                           #F0 #21
  1631.   V              #2A                           #F0 #2A
  1632.   B              #32                           #F0 #32
  1633.   N              #31                           #F0 #31
  1634.   M              #3A                           #F0 #3A
  1635.   ,              #41                           #F0 #41
  1636.   .              #49                           #F0 #49
  1637.   /              #4A                           #F0 #4A
  1638.   Right Shift    #59                           #F0 #59
  1639.  
  1640.   Left Ctrl      #14                           #F0 #14
  1641.   Left Alt       #11                           #F0 #11
  1642.   Space          #29                           #F0 #29
  1643.   Right Alt      #E0 #11                       #E0 #F0 #11
  1644.   Right Ctrl     #E0 #14                       #E0 #F0 #14
  1645.   ESC            #76                           #F0 #76
  1646. ----------------------------------------------------------------------------
  1647.  
  1648.  
  1649.                           ** Function Keys **
  1650. ----------------------------------------------------------------------------
  1651.   Key         Make Code                       Break Code        Notes
  1652. ----------------------------------------------------------------------------
  1653.   F1             #05                           #F0 #05
  1654.   F2             #06                           #F0 #06
  1655.   F3             #04                           #F0 #04
  1656.   F4             #0C                           #F0 #0C
  1657.   F5             #03                           #F0 #03
  1658.   F6             #0B                           #F0 #0B
  1659.   F7             #83                           #F0 #83
  1660.   F8             #0A                           #F0 #0A
  1661.   F9             #01                           #F0 #01
  1662.   F10            #09                           #F0 #09
  1663.   F11            #78                           #F0 #78
  1664.   F12            #07                           #F0 #07
  1665. ----------------------------------------------------------------------------
  1666.  
  1667.  
  1668.                             ** Numeric Pad **
  1669. ----------------------------------------------------------------------------
  1670.   Key         Make Code                       Break Code         Notes
  1671. ----------------------------------------------------------------------------
  1672.   NumLok         #77                           #F0 #77
  1673.   KP-            #7B                           #F0 #7B
  1674.   KP/            #E0 #4A                       #E0 #F0 #4A     Notes 1, 2
  1675.   KP.            #71                           #F0 #71
  1676.   KP*            #7C                           #F0 #7C
  1677.   KP+            #79                           #F0 #79
  1678.   KPEnter        #E0 #5A                       #E0 #F0 #5A
  1679.  
  1680.   KP0            #70                           #F0 #70
  1681.   KP1            #69                           #F0 #69
  1682.   KP2            #72                           #F0 #72
  1683.   KP3            #7A                           #F0 #7A
  1684.   KP4            #6B                           #F0 #6B
  1685.   KP5            #73                           #F0 #73
  1686.   KP6            #74                           #F0 #74
  1687.   KP7            #6C                           #F0 #6C
  1688.   KP8            #75                           #F0 #75
  1689.   KP9            #7D                           #F0 #7D
  1690. ----------------------------------------------------------------------------
  1691.  
  1692.  
  1693.                            ** Auxiliary Pads **
  1694. ----------------------------------------------------------------------------
  1695.   Key           Make Code                      Break Code        Notes
  1696. ----------------------------------------------------------------------------
  1697.   Ins            #E0 #70                       #E0 #F0 #70    Notes 1, 2, 3
  1698.   Home           #E0 #6C                       #E0 #F0 #6C    Notes 1, 2, 3
  1699.   Pg Up          #E0 #7D                       #E0 #F0 #7D    Notes 1, 2, 3
  1700.   Del            #E0 #71                       #E0 #F0 #71    Notes 1, 2, 3
  1701.   End            #E0 #69                       #E0 #F0 #69    Notes 1, 2, 3
  1702.   Pg Dn          #E0 #7A                       #E0 #F0 #7A    Notes 1, 2, 3
  1703.  
  1704.   Up Arrow       #E0 #75                       #E0 #F0 #75    Notes 1, 2, 3
  1705.   Left Arrow     #E0 #6B                       #E0 #F0 #6B    Notes 1, 2, 3
  1706.   Right Arrow    #E0 #74                       #E0 #F0 #74    Notes 1, 2, 3
  1707.   Down Arrow     #E0 #72                       #E0 #F0 #72    Notes 1, 2, 3
  1708.  
  1709.   PrtSc          #E0 #12 #E0 #7C               #E0 #F0 #7C #E0 #F0 #12
  1710.   Ctl-PrtSc      #E0 #7C                       #E0 #F0 #7C
  1711.   Alt-PrtSc      #84                           #E0 #84
  1712.   ScrLk          #7E                           #F0 #7E
  1713.   Pause          #E1 #14 #77 #E1 #F0 #14 #77   None
  1714.   Ctrl-Break     #E0 #7E #E0 #F0 #7E           None
  1715.  
  1716. ----------------------------------------------------------------------------
  1717.  
  1718.  
  1719.                                 ** Notes **
  1720. ----------------------------------------------------------------------------
  1721.  
  1722.   Note 1
  1723.  
  1724.      If Left Shift is Down:
  1725.  
  1726.         Make Sequence - #E0 #F0 #12 #** #**
  1727.        Break Sequence _ #** #** #** #E0 #12
  1728.  
  1729.   Note 2
  1730.  
  1731.     If Right Shift is Down:
  1732.  
  1733.         Make Sequence - #E0 #F0 #59 #** #**
  1734.        Break Sequence - #** #** #** #E0 #59
  1735.  
  1736.   Note 3
  1737.  
  1738.     If Num Lock is On:
  1739.  
  1740.         Make Sequence - #E0 #12 #** #**
  1741.        Break Sequence - #** #** #** #E0 #F0 #12
  1742.  
  1743.   The '#** #**' entry represents the Make Code and the '#** #** #**' entry
  1744.   represents the  Break Code specified for the character in the main chart
  1745.   and should be replaced with those sequences in actual use.
  1746.  
  1747.  
  1748. Note:  Raw Scan code examples for the ThrustMaster F-22/WCS II & F-22/TQS.
  1749.  
  1750. Refer to the below - you can cut and paste these into your sims/games 
  1751. based on how the commands respond in that game or sim.
  1752.  
  1753. Some games may require a simple press and release of the command to 
  1754. operate properly - the proper format for that is the examples of the press 
  1755. and release of the c command below.
  1756.  
  1757. For those that only require a press and do not even look for a release, 
  1758. the second example would be all that is required.
  1759.  
  1760. For the Extended keypad (aka the Grey Keys) such as INS, DEL, HOME, END, 
  1761. UAROW, DAROW, LAROW, & RAROW examples of those are given also.  These may 
  1762. also be cut and pasted into your game or sim .F22 or .M22 file.
  1763.  
  1764. Most of the examples shown may be used directly in the .F22 file in place 
  1765. of the keyboard key entered just to the right, after one space, of a 
  1766. button or hat command. For example, to enter a command to button S1 on the 
  1767. F-22 as a RAW scan code directly in the .F22 file simply do this:
  1768.  
  1769. BTN S1 RAW (#21 #F0 #21) REM press & release of c key and it will work 
  1770. just as well as if you enter it into a .M22 file and give it a macro name 
  1771. like this:
  1772.  
  1773. Keyc/P/R = RAW (#21 #F0 #21)
  1774.  
  1775. And then enter this in the .F22 file:
  1776.  
  1777. BTN S1 = Keyc/P/R
  1778.  
  1779. You can do this with any key and ignore even using a .M22 if you wish, 
  1780. just enter the key next to the button or hat assignment and use any of the 
  1781. slash codes you need and the key or keys you need like this:
  1782.  
  1783. BTN S1 /P /T a /T b /R /T c /T d REM Toggle a/c/b/d.
  1784.  
  1785. and it will work fine.  All that is needed is to leave out any MDEF file 
  1786. name.
  1787.  
  1788. General tips for most sims or games:
  1789.  
  1790. DO NOT USE FCLK (this is only needed for games that actually look for a 
  1791. keypress on one frame and a key release on a second frame.  How to tell?  
  1792. For example, you program a SHF on a key to fire the guns and when you 
  1793. press the button that will fire the guns they fire and continue to fire 
  1794. until you hit a key on the keyboard or the guns empty out.  This is an 
  1795. example of a 'stuck key' and the way around it is to try FCLK.  Dynamix 
  1796. sims such as Aces of the Pacific have this type of problem due to the way 
  1797. the sim is programmed.
  1798.  
  1799. USE RATE 0 (ZERO) FIRST - ALWAYS - why? Because your keys will be 
  1800. generated the fastest this way.  If you then have problems where SOME keys 
  1801. are not releasing, or they will work the first time, but not the second 
  1802. time you press them, this is likely a RATE problem (i.e. the sim or game 
  1803. is spending more time generating graphics, etc than it is devoting to more 
  1804. mundane tasks like reading the keyboard buffer and is consequently missing 
  1805. some keys).  If you encounter this - then try increasing the rate to 25, 
  1806. if the problem persists, try 50, and so on.  These type of problems are 
  1807. always characterized by the 'some keys work the first time I press them 
  1808. but never again the second unless I press the key again on the keyboard' - 
  1809. unlike the 'stuck key example above where FCLK might help, this is caused 
  1810. by the programming simply missing the release because it is too busy doing 
  1811. other things and not reading the keyboard buffer as often as it should.  
  1812. I've seen this with a lot of Digital Integrations programs and Origins 
  1813. Wing Commander series because they are intensively graphic programs and 
  1814. need a lot of CPU time.
  1815.  
  1816. The other characteristic of this type problem is that some keys will come 
  1817. thru and others will not but 'stuck keys' are not really happening, the 
  1818. program is just 'missing' seeing the press AND release because it's busy 
  1819. doing other things and you are furiously pressing buttons faster than it 
  1820. can keep up.  With this - do the same - try a RATE of 25 first, then 50 
  1821. and so on until the keys do come thru satisfactorily.
  1822.  
  1823. Examples of RAW scan codes:
  1824.  
  1825. REM - c press and release RAW code format is always the press first - #21 
  1826. - and then the release - #F0 #21: RAW (#21 #F0 #21)
  1827.  
  1828. REM - c press only:
  1829. RAW (#21)
  1830.  
  1831. REM - KP1 press and release:
  1832. RAW (#69 #F0 #69)
  1833.  
  1834. REM - KP1 press only:
  1835. RAW (#69)
  1836.  
  1837. REM - KP5 press and release:
  1838. RAW (#73 #F0 #73)
  1839.  
  1840. REM - Press RSFT dn + UAROW dn - Release RSFT up UAROW up:
  1841. /P (RAW (#59 #E0 #75)) /R RAW (#F0 #59 #E0 #F0 #75)
  1842.  
  1843. REM - Press RSFT dn + DAROW dn - Release RSFT up DAROW up:
  1844. /P (RAW (#59 #E0 #72)) /R RAW (#F0 #59 #E0 #F0 #72)
  1845.  
  1846. REM - Press RSFT dn + LAROW dn - Release RSFT up LAROW up:
  1847. /P (RAW (#59 #E0 #6B)) /R RAW (#F0 #59 #E0 #F0 #6B)
  1848.  
  1849. REM - Press RSFT dn + RAROW dn - Release RSFT up RAROW up:
  1850. /P (RAW (#59 #E0 #74)) /R RAW (#F0 #59 #E0 #F0 #74)
  1851.  
  1852. REM - Press CTL dn + UAROW dn - Release CTL up UAROW up:
  1853. /P (RAW (#E0 #14 #E0 #75)) /R RAW (#E0 #F0 #14 #E0 #F0 #75)
  1854.  
  1855. REM - Press CTL dn + DAROW dn - Release CTL up DAROW up:
  1856. /P (RAW (#E0 #14 #E0 #72)) /R RAW (#E0 #F0 #59 #E0 #F0 #72)
  1857.  
  1858. REM - Press CTL dn + RAROW dn - Release CTL up RAROW up:
  1859. /P (RAW (#E0 #14 #E0 #74)) /R RAW (#E0 #F0 #59 #E0 #F0 #74)
  1860.  
  1861. REM - Press CTL dn + LAROW dn - Release CTL up LAROW up:
  1862. /P (RAW (#E0 #14 #E0 #6B)) /R RAW (#E0 #F0 #59 #E0 #F0 #6B)
  1863.  
  1864. REM - INS press and release:
  1865. RAW (#E0 #70 #E0 #F0 #70)
  1866.  
  1867. REM - DEL press and release:
  1868. RAW (#E0 #71 #E0 #F0 #71)
  1869.  
  1870. REM - HOME press and release:
  1871. RAW (#E0 #6C #E0 #F0 #6C)
  1872.  
  1873. REM - END press and release:
  1874. RAW (#E0 #69 #E0 #F0 #69)
  1875.  
  1876. REM - PGUP press and release:
  1877. RAW (#E0 #7D #E0 #F0 #7D)
  1878.  
  1879. REM - PGDN press and release:
  1880. RAW (#E0 #7A #E0 #F0 #7A)
  1881.  
  1882. REM - PRTSC press and release:
  1883. RAW (#E0 #12 #E0 #7C #E0 #F0 #7C #E0 #F0 #12)
  1884.  
  1885. REM - PRTSC press only:
  1886. RAW (#E0 #12 #E0 #7C)
  1887.  
  1888. REM - CTL PRTSC press and release:
  1889. RAW (#E0 #7C #E0 #F0 #7C)
  1890.  
  1891. REM - ALT PRTSC press and release:
  1892. RAW (#84 #E0 #84)
  1893.  
  1894. REM - ALT PRTSC press only:
  1895. RAW (#84)
  1896.  
  1897. REM - PAUSE press or press and release (there really is no release, Pause, 
  1898. and Break are 'special' keys): RAW (#E1 #14 #77 #E1 #F0 #14 #77)
  1899.  
  1900. REM - CTL BRK press or press and release: RAW (#E0 #7E #E0 #F0 #7E)
  1901.  
  1902. NOTE: You can find all the above and even more information on handling RAW 
  1903. scan codes and how to get around 'difficult situations' created by 
  1904. 'creative' programmers by downloading the file AN0001.ZIP or AN0001.TXT 
  1905. from ThrustMaster's WEB page (Tech Support - PC - File Lib - Utilities) at 
  1906. http://www.thrustmaster.com.  The file is also available in the GAMDPUB - 
  1907. ThrustMaster Forum Library on CompuServe Information Service, as well as 
  1908. other online services where ThrustMaster is active, such as AOL, DELPHI, 
  1909. ITI, etc. This file contains a complete listing of RAW scan code PRESS 
  1910. strings and RAW scan code RELEASE strings and how to use them as either a 
  1911. press only or a press and a release for every key on the keyboard.
  1912.  
  1913. NOTE: You will never encounter a situation where you will need a RELEASE 
  1914. only command because a PRESS will always be called for first - so an 
  1915. attempt to download a file with a RELEASE only, whether a RAW scan code 
  1916. release or a /R release will generate an error by the complier when you 
  1917. attempt to download it.
  1918.  
  1919. .TOPIC:
  1920. Contacting ThrustMaster
  1921.  
  1922. If you have problems with your F-22, please call ThrustMaster 
  1923. Technical support.  Phone support is available Monday-Friday, 7:00 - 6:00 
  1924. PST at (503) 615-3201.  See the listing below for email addresses and 
  1925. other on-line information.
  1926.  
  1927. In order to better assist with your problem we ask that you gather as much 
  1928. information as you can before calling.  Knowing the speed, make, and model 
  1929. of your computer system is very helpful information.  If possible, try 
  1930. using the F-22 on another computer.
  1931.  
  1932. The Service Department is available at (503) 615-3202. 
  1933. Note: All products being returned must have an RMA number issued by 
  1934. Service and Repair. Any product sent to ThrustMaster without an RMA number
  1935. will be refused and returned to the sender.
  1936.  
  1937. Online services
  1938.  
  1939.     Compuserve           -   GO GAMDPUB, 72662,2334
  1940.     America Online       -   ThrustMast  
  1941.     GENIE                -   Thrust.dude
  1942.     Prodigy              -   GVRR37A
  1943.     Internet email       -   techsupp@thrustmaster.com and
  1944.                              service@thrustmaster.com
  1945.     Web Site             -   http://www.thrustmaster.com
  1946.  
  1947.  
  1948. General address and phone numbers
  1949.  
  1950.     ThrustMaster, Inc.
  1951.     7175 NW Evergreen Parkway #400
  1952.     Hillsboro, OR 97124
  1953.  
  1954.     VOICE (503) 615-3200
  1955.     FAX   (503) 615-3300
  1956.  
  1957.